package com.xyq.system.utils;

import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
/**
 * 加密算法?具类
 */
public class BCryptUtils {
 /**
 * ?成加密后密?
 *
 * @param password 密码
 * @return 加密字符串
 */
 public static String encryptPassword(String password) {
 BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
 return passwordEncoder.encode(password);
 }
 /**
 * 判断密码是否相同
 *
 * @param rawPassword 用户输入的密码
 * @param encodedPassword 数据库里存储的密文
 * @return 结果
 */     
    //  根据 数据库里存储的密文中, 获取到加密时的盐值 , 然后把 盐值+用户输入的密码=>加密
    //  加密后 在 和 数据库中的密文 进行对比 如果 相同 , 那么表面用户输入的密码相同
 public static boolean matchesPassword(String rawPassword, String encodedPassword) {
 BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
 return passwordEncoder.matches(rawPassword, encodedPassword);
 }

 public static void main(String[] args) {
      String password = "123456" ;
      String  encryption = encryptPassword(password) ;
  System.out.println("加密后的结果:"+encryption);
  System.out.println(matchesPassword(password , encryption));
 }

}
